package com.sg.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 用于被评对象指标周期的目标设置
 *
 * @author xxx
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("baafab2a375c11ed87d500163e1b729d")
public class OmsEvaObjTargetCycleOset extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 被评对象目标设置ID
     */
    @TableId(value = "eva_obj_oset_id", type = IdType.UUID)
    @NotNull(message = "evaObjOsetId不能为空")
    private String evaObjOsetId;

    /**
     * 评价模板评价画像目标周期ID
     */
    @TableField(value = "eva_portrait_target_cycle_id")
    @ApiModelProperty("评价模板评价画像目标周期ID")
    private String evaPortraitTargetCycleId;

    /**
     * 评价模板评价对象目标周期ID
     */
    @TableField(value = "eva_obj_target_cycle_id")
    @ApiModelProperty("评价模板评价对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 一级部门目标任务责任部门目标周期ID
     */
    @TableField(value = "m_level_eva_obj_target_cycle_id")
    @ApiModelProperty("一级部门目标任务责任部门目标周期ID")
    private String mLevelEvaObjTargetCycleId;

    /**
     * OKR责任主体部门目标周期ID
     */
    @TableField(value = "okr_dpt_eva_obj_target_cycle_id")
    @ApiModelProperty("OKR责任主体部门目标周期ID")
    private String okrDptEvaObjTargetCycleId;

    /**
     * OKR责任主体个人目标周期ID
     */
    @TableField(value = "okr_ps_eva_obj_target_cycle_id")
    @ApiModelProperty("OKR责任主体个人目标周期ID")
    private String okrPsEvaObjTargetCycleId;

    /**
     * 起始值
     */
    @TableField(value = "target_start_value")
    @ApiModelProperty("起始值")
    private Double targetStartValue;

    /**
     * 目标值
     */
    @TableField(value = "target_value")
    @ApiModelProperty("目标值")
    private Double targetValue;

    /**
     * 展示目标值
     */
    @TableField(value = "show_target_value")
    @NotNull(message = "展示目标值不能为空")
    @ApiModelProperty("展示目标值")
    private Double showTargetValue;

    /**
     * 诊断值
     */
    @TableField(value = "target_diagnostic_value")
    @ApiModelProperty("诊断值")
    private Double targetDiagnosticValue;

    /**
     * 冗余单位
     */
    @TableField(value = "unit")
    @NotNull(message = "冗余单位不能为空")
    @ApiModelProperty("冗余单位")
    private String unit;

    /**
     * 目标值计算方式 INITIAL_VALUE_COUNT:按起始值计算 TARGET_VALUE_COUNT:按目标值计算
     */
    @TableField(value = "target_value_count_type")
    @NotNull(message = "目标值计算方式不能为空")
    @ApiModelProperty("目标值计算方式")
    private String targetValueCountType;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @TableField(value = "target_value_type")
    @NotNull(message = "冗余指标业务类型不能为空")
    @ApiModelProperty("冗余指标业务类型")
    private String targetValueType;

    /**
     * 运算符号 GREATER_THAN:大于 LESS_THAN:小于 EQUAL:等于 GREATER_EQUAL_THAN:大于等于 LESS_EQUAL_THAN:小于等于 ALL_NOT_EQUAL:均不低于 ALL_NOT_GREATER:均不高于
     */
    @TableField(value = "logical_operator")
    @ApiModelProperty("运算符号")
    private String logicalOperator;

    /**
     * 是否引用实际值 TRUE:是 FALSE:否
     */
    @TableField(value = "is_quoteactual_value")
    @ApiModelProperty("是否引用实际值")
    private String isQuoteactualValue;

    /**
     * 是否引用达成度 TRUE:是 FALSE:否
     */
    @TableField(value = "is_quote_reach")
    @ApiModelProperty("是否引用达成度")
    private String isQuoteReach;

    /**
     * 是否引用资料 TRUE:是 FALSE:否
     */
    @TableField(value = "is_quote_data")
    @ApiModelProperty("是否引用资料")
    private String isQuoteData;

    /**
     * 是否被引用 TRUE:是 FALSE:否
     */
    @TableField(value = "is_be_quote")
    @NotNull(message = "是否被引用不能为空")
    @ApiModelProperty("是否被引用")
    private String isBeQuote;

    /**
     * 是否已引用 TRUE:是 FALSE:否
     */
    @TableField(value = "is_already_quote")
    @NotNull(message = "是否已引用不能为空")
    @ApiModelProperty("是否已引用")
    private String isAlreadyQuote;

    /**
     * 引用被评对象目标周期ID
     */
    @TableField(value = "quote_eva_obj_target_cycle_id")
    @ApiModelProperty("引用被评对象目标周期ID")
    private String quoteEvaObjTargetCycleId;

    /**
     * 批次标识
     */
    @TableField(value = "batch_code")
    @NotNull(message = "批次标识不能为空")
    @ApiModelProperty("批次标识")
    private String batchCode;

    /**
     * 冗余评价模板ID
     */
    @TableField(value = "evaluation_template_id")
    @NotNull(message = "冗余评价模板ID不能为空")
    @ApiModelProperty("冗余评价模板ID")
    private String evaluationTemplateId;

    /**
     * 创建于批次标识
     */
    @TableField(value = "create_batch_code")
    @ApiModelProperty("创建于批次标识")
    private String createBatchCode;

    /**
     * 批次开始时间
     */
    @TableField(value = "batch_start_time")
    @ApiModelProperty("批次开始时间")
    private Date batchStartTime;

    /**
     * 批次结束时间
     */
    @TableField(value = "batch_endt_time")
    @NotNull(message = "批次结束时间不能为空")
    @ApiModelProperty("批次结束时间")
    private Date batchEndtTime;

    /**
     * 批次下是否更新 TRUE:是 FALSE:否
     */
    @TableField(value = "is_update")
    @NotNull(message = "批次下是否更新不能为空")
    @ApiModelProperty("批次下是否更新")
    private String isUpdate;

    /**
     * 批次下更新状态 NEW:本次新增 UNCHANGED:正常未变 REVISION:本次修订 ARCHIVE:本次存档
     */
    @TableField(value = "update_status")
    @NotNull(message = "批次下更新状态不能为空")
    @ApiModelProperty("批次下更新状态")
    private String updateStatus;

    /**
     * 存档类型 NOT_ARCHIVE:未归档 TOBE_ARCHIVING:想归档 ARCHIVED:已归档
     */
    @TableField(value = "archivng_type")
    @NotNull(message = "存档类型不能为空")
    @ApiModelProperty("存档类型")
    private String archivngType;

    /**
     * 是否未来 TRUE:是 FALSE:否
     */
    @TableField(value = "is_editing")
    @NotNull(message = "是否未来不能为空")
    @ApiModelProperty("是否未来")
    private String isEditing;

    /**
     * 是否存档 TRUE:是 FALSE:否
     */
    @TableField(value = "is_archive")
    @NotNull(message = "是否存档不能为空")
    @ApiModelProperty("是否存档")
    private String isArchive;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @TableField(value = "subject_life_cycle")
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 操作人就职记录ID
     */
    @TableField(value = "operation_induction_id")
    @NotNull(message = "操作人就职记录ID不能为空")
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 创建人就职记录ID
     */
    @TableField(value = "create_induction_id")
    @NotNull(message = "创建人就职记录ID 不能为空")
    @ApiModelProperty("创建人就职记录ID ")
    private String createInductionId;

    /**
     * 发布人就职记录ID
     */
    @TableField(value = "release_induction_id")
    @ApiModelProperty("发布人就职记录ID")
    private String releaseInductionId;

    /**
     * 存档人就职记录ID
     */
    @TableField(value = "archive_induction_id")
    @ApiModelProperty("存档人就职记录ID")
    private String archiveInductionId;

    /**
     * 操作时间
     */
    @TableField(value = "operate_time")
    @NotNull(message = "操作时间不能为空")
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @NotNull(message = "创建时间不能为空")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 发布时间
     */
    @TableField(value = "release_time")
    @ApiModelProperty("发布时间")
    private Date releaseTime;

    /**
     * 存档时间
     */
    @TableField(value = "archive_time")
    @ApiModelProperty("存档时间")
    private Date archiveTime;

    /**
     * 是否作废 TRUE:是 FALSE:否
     */
    @TableField(value = "is_valid")
    @NotNull(message = "是否作废不能为空")
    @ApiModelProperty("是否作废")
    private String isValid;

    /**
     * 创建于空间ID
     */
    @TableField(value = "space_id")
    @NotNull(message = "创建于空间ID不能为空")
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

    /**
     * 创建于联盟应用ID
     */
    @TableField(value = "app_id")
    @NotNull(message = "创建于联盟应用ID不能为空")
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;
}
